home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 2
/
Atari Mega Archive CD - Volume 2.iso
/
8bit
/
language
/
sysmac.sml
< prev
next >
Wrap
Text File
|
1995-04-22
|
20KB
|
780 lines
;<HESS.ATARI>SYSMAC.SML.27 8-Mar-82 08:39:38, Edit by HESS
;6502 SYSTEM -*-MACRO-*- DEFINITIONS
; ***** ATARI SYSTEM DEFS *****
.MACRO ATARI
; VECTOR TABLE
EDITRV =$E400 ;EDITOR
SCRENV =$E410 ;TELEVISION SCREEN
KEYBDV =$E420 ;KEYBOARD
PRINTV =$E430 ;PRINTER
CASETV =$E440 ;CASSETTE
; JUMP VECTOR TABLE
DISKIV =$E450 ;DISK INITIALIZATION
DSKINV =$E453 ;DISK INTERFACE
CIOV =$E456 ;CIO ROUTINE
SIOV =$E459 ;SIO ROUTINE
SETVBV =$E45C ;SET VERTICAL BLANK VECTORS
SYSVBV =$E45F ;SYSTEM VERTICAL BLANK ROUTINE
XITVBV =$E462 ;EXIT VERTICAL BLANK ROUTINE
SIOINV =$E465 ;SIO INIT
SENDEV =$E468 ;SEND ENABLE ROUTINE
INTINV =$E46B ;INTERRUPT HANDLER INIT
CIOINV =$E46E ;CIO INIT
BLKBDV =$E471 ;BLACKBOARD MODE
WARMSV =$E474 ;WARM START ENTRY POINT
COLDSV =$E477 ;COLD START ENTRY POINT
RBLOKV =$E47D ;CASSETTE READ BLOCK VECTOR
DSOPIV =$E480 ;CASSETTE OPEN FOR INPUT VECTOR
; SOME USEFUL INTERNAL ROUTINES
KGETCH =$F6E2 ;GET CHAR FROM KEYBOARD
EOUTCH =$F6A4 ;OUTPUT CHAR TO SCREEN
PUTLIN =$F385 ;OUTPUT LINE TO IOCB#0
; COMMAND CODES FOR IOCB
OPEN =$03 ;OPEN FOR INPUT/OUTPUT
GETREC =$05 ;GET RECORD (TEXT)
GETCHR =$07 ;GET CHARACTER(S)
PUTREC =$09 ;PUT RECORD (TEXT)
PUTCHR =$0B ;PUT CHARACTER(S)
CLOSE =$0C ;CLOSE DEVICE
STATIS =$0D ;STATUS REQUEST
SPECIL =$0E ;SPECIAL ENTRY COMMANDS
; SPECIAL ENTRY COMMANDS
DRAWLN =$11 ;DRAW LINE
FILLIN =$12 ;DRAW LINE WITH RIGHT FILL
RENAME =$20 ;RENAME DISK FILE
DELETE =$21 ;DELETE DISK FILE
FORMAT =$22 ;FORMAT DISK
LOCKFL =$23 ;LOCK FILE (READ ONLY)
UNLOCK =$24 ;UNLOCK FILE
POINT =$25 ;POINT SECTOR
NOTE =$26 ;NOTE SECTOR
CCIO =$28 ;CONCURRENT I/O MODE
IOCFRE =$FF ;IOCB "FREE"
; AUX1 VALUES FOR OPEN
APPEND =$01 ;OPEN FOR APPEND
DIRECT =$02 ;OPEN FOR DIRECTORY ACCESS
OPNIN =$04 ;OPEN FOR INPUT
OPNOT =$08 ;OPEN FOR OUTPUT
OPNINO =OPNIN!OPNOT ;OPEN FOR INPUT/OUTPUT
MXDMOD =$10 ;OPEN FOR MIXED MODE
INSCLR =$20 ;OPEN WITHOUT CLEARING SCREEN
; OS STATUS CODES
SUCCES =$01 ;SUCCESSFUL OPERATION
BRKABT =$80 ;(128) BREAK KEY ABORT
PRVOPN =$81 ;(129) IOCB ALREADY OPEN
NONDEV =$82 ;(130) NON-EX DEVICE
WRONLY =$83 ;(131) IOCB OPENED FOR WRITE ONLY
NVALID =$84 ;(132) INVALID COMMAND
NOTOPN =$85 ;(133) DEVICE OR FILE NOT OPEN
BADIOC =$86 ;(134) INVALID IOCB NUMBER
RDONLY =$87 ;(135) IOCB OPENED FOR READ ONLY
EOFERR =$88 ;(136) END OF FILE
TRNRCD =$89 ;(137) TRUNCATED RECORD
TIMOUT =$8A ;(138) DEVICE TIMEOUT
DNACK =$8B ;(139) DEVICE DOES NOT ACK COMMAND
FRMERR =$8C ;(140) SERIAL BUS FRAMING ERROR
CRSROR =$8D ;(141) CURSOR OUT OF RANGE
OVRRUN =$8E ;(142) SERIAL BUS DATA OVERRUN
CHKERR =$8F ;(143) SERIAL BUS CHECKSUM ERROR
DERROR =$90 ;(144) DEVICE ERROR (OPERATION INCOMPLETE)
BADMOD =$91 ;(145) BAD SCREEN MODE NUMBER
FNCNOT =$92 ;(146) FUNCTION NOT IN HANDLER
SCRMEM =$93 ;(147) INSUFFICIENT MEMORY FOR SCREEN MODE
; PAGE 0 LOCATIONS
LINZBS =$00 ;LINBUG STORAGE
; THESE LOCS ARE NOT CLEARED
CASINI =$02 ;CASSETTE INIT LOC
RAMLO =$04 ;RAM POINTER FOR MEM TEST
TRAMSZ =$06 ;TEMP LOC FOR RAM SIZE
TSTDAT =$07 ;RAM TEST DATA LOC
; CLEARED ON COLDSTART ONLY
WARMST =$08 ;WARM START FLAG
BOOTQ =$09 ;SUCCESSFUL BOOT FLAG
DOSVEC =$0A ;DOS START VECTOR
DOSINI =$0C ;DOS INIT ADDRESS
APPMHI =$0E ;APPLICATION MEM HI LIMIT
; CLEARED ON COLD OR WARM START
INTZBS =$10 ; START OF OS RAM CLEAR LOC => $7F
POKMSK =$10 ⑨ ;SYSTEM MASK FOR POKEY IRQ ENABLE
BRKKEY =$11 ;BREAK KEY FLAG
RTCLOK =$12 ;REAL TIME CLOCK (60HZ OR 16.66666 MS)
BUFADR =$15 ;INDIRECT BUFFER ADDRESS REG
ICCOMT =$17 ;COMMAND FOR VECTOR HANDLER
DSKFMS =$18 ;DISK FILE MANAGER POINTER
DSKUTL =$1A ;DISK UTILITIES POINTER
PTIMOT =$1C ;PRINTER TIME OUT REGISTER
PBPNT =$1D ;PRINT BUFFER POINTER
PBUFSZ =$1E ;PRINT BUFFER SIZE
PTEMP =$1F ;TEMP REG
ZIOCB =$20 ;PAGE 0 I/O CONTROL BLOCK
IOCBSZ =16 ;NUMBER OF BYTES / IOCB
MAXIOC =8*IOCBSZ ;LENGTH OF IOCB AREA
IOCBAS =ZIOCB
ICHIDZ =$20 ;HANDLER INDEX NUMBER ($FF := IOCB FREE)
ICDNOZ =$21 ;DEVICE NUMBER (DRIVE NUMBER)
ICCOMZ =$22 ;COMMAND CODE
ICSTAZ =$23 ;STATUS OF LAST IOCB ACTION
ICBALZ =$24 ;BUFFER ADDRESS (LOW)
ICBAHZ =$25 ; " " (HIGH)
ICPTLZ =$26 ;PUT BYTE ROUTINE ADDRESS - 1
ICPTHZ =$27
ICBLLZ =$28 ;BUFFER LENGTH (LOW)
ICBLHZ =$29 ; " " (HIGH)
ICAX1Z =$2A ;AUX INFO
ICAX2Z =$2B
ICSPRZ =$2C ;SPARE BYTES (CIO LOCAL USE)
ICIDNO =ICSPRZ+2 ;IOCB LUMBER * 16
CIOCHR =ICSPRZ+3 ;CHARACTER BYTE FOR CURRENT OPERATION
STATUS =$30 ;INTERNAL STATUS STORAGE
CHKSUM =$31 ;CHECKSUM (SINGLE BYTE SUM WITH CARRY)
BUNRLO =$32 ;POINTER TO DATA BUFFER (LO BYTE)
BUFRHI =$33 ;POINTER TO DATA BUFFER (HI BYTE)
BFENLO =$34 ;NEXT BYTE PAST END OF BUFFER (LO BYTE)
BNENHI =$35 ;NEXT BYTE PAST END OF BUFFER (HI BYTE)
CRETRY =$36 ;NUMBER OF COMMAND FRAM RETRIES
DRETRY =$37⑨ ;NUMBER OF DEVICE RETRIES
BUFRFL =$38 ;DATA BUFFER FULL FLAG
RECVDN =$39 ;RECEIVE DONE FLAG
XMTDON =$3A ;XMIT DONE FLAG
CHKSNT =$3B ;CHECKSUM SENT FLAG
NOCKSM =$3C ;NO CHECKSUM FOLLOWS DATA FLAG
BPTR =$3D ;BUFFER POINTER (CASSETTE)
FTYPE =$3E ;FILE TYPE (SHORT IRG/LONG IRG)
FEOF =$3F ;END OF FILE FLAG (CASSETTE)
FREQ =$40 ;FREQ COUNTER FOR CONSOLE SPEAKER
SOUNDR =$41 ;NOISY I/O FLAG. (ZERO IS QUIET)
CRITIC =$42 ;CRITICAL CODE IF NON-ZERO)
FMSZPG =$43 ;DISK FILE MANAGER SYSTEM STORAGE (7 BYTES)
CKEY =$4A ;SET WHEN GAME START PRESSED
CASSBT =$4B ;CASSETTE BOOT FLAG
DSTAT =$4C ;DISPLAY STATUS
ATRACT =$4D ;ATTRACT MODE FLAG
DRKMSK =$4E ;DARK ATTRACT MASK
COLRSH =$4F ;ATTRACT COLOR SHIFTER (XOR'D WITH PLAYFIELD)
TMPCHR =$50 ;TEMP CHAR STORAGE (DISPLAY HANDLER)
HOLD1 =$51 ;TEMP STG (DISPLAY HANDLER)
LMARGN =$52 ;LEFT MARGIN
RMARGN =$53 ;RIGHT MARGIN
ROWCRS =$54 ;CURSOR COUNTERS
COLCRS =$55
DINDEX =$57 ;DISPLAY INDEX (VARIOUS QUANTS)
SAVMSC =$58
OLDROW =$5A ;PREVIOUS ROW/COL
OLDCOL =$5B
OLDCHR =$5D ;DATA UNDER CURSOR
OLDADR =$5E
NEWROW =$60 ;POINT DRAWS TO HERE
NEWCOL =$61
LOGCOL =$63 ;POINTS AT COLUMN IN LOGICAL LINE
ADRESS =$64 ;INDIRECT POINTER
MLTTMP =$66 ;MULTIPLY TEMP
OPNTMP =MLTTMP ;FIRST BYTE IS USED IN OPEN AS TEMP
SAVADR =$68
RAMTOP =$6A ;RAM SIZE DEFINED BY POWER ON LOGIC
BUFCNT =$6B ;BUFFER COUNT
BUFSTR =$6C ;EDITOR GETCH POINTER
BITMSK =$6E ;BIT MASK
SHFAMT =$6F ;OUTCHR SHIFT
ROWAC =$70 ;USED BY "DRAW"
COLAC =$72
ENDPT =$74
DELTAR =$76
DELTAC =$77
ROWINC =$79
COLINC =$7A
SWPFLG =$7B ;NON-0 IF TXT AND RAM SWAPPED
HOLDCH =$7C ;CH BEFORE CNTL & SHFT PROCESSING IN KGETCH
INSDAT =$7D ;INSERT CHAR SAVE
COUNTR =$7E ;DRAW COUNTER
;;; $80 TO $FF ARE RESERVED FOR USER APPLICATIONS
; PAGE 2 LOCATIONS
INTABS =$200 ;INTERRUPT TABLE
VDSLST =$200 ;DISPLAY LIST NMI VECTOR
VPRCED =$202 ;PROCEED LINE IRQ VECTOR
VINTER =$204 ;INTERRUPT LINE IRQ VECTOR
VBREAK =$206 ;"BRK" VECTOR
VKEYBD =$208 ;POKEY KEYBOARD IRQ VECTOR
VSERIN =$20A ;POKEY SERIAL INPUT READY
VSEROR =$20C ;POKEY SERIAL OUTPUT READY
VSEROC =$20E ;POKEY SERIAL OUTPUT DONE
VTIMR1 =$210 ;POKEY TIMER 1 IRQ
VTIMR2 =$212 ;POKEY TIMER 2 IRQ
VTIMR4 =$214 ;POKEY TIMER 4 IRQ (DO NOT USE)
VIMIRQ =$216 ;IMMEDIATE IRQ VECTOR
CDTMV1 =$218 ;COUNT DOWN TIMER 1
CDTMV1 =$21A ;COUNT DOWN TIMER 2
CDTMV1 =$21C ;COUNT DOWN TIMER 3
CDTMV1 =$21E ;COUNT DOWN TIMER 4
CDTMV1 =$220 ;COUNT DOWN TIMER 5
VVBLKI =$222 ;IMMEDIATE VERTICAL BLANK NMI VECTOR
VVBLKD =$224 ;DEFERRED VERTICAL BLANK NMI VECTOR
CDTMA1 =$226 ;COUNT DOWN TIMER 1 JSR ADDRESS
CDTMA2 =$228 ;COUNT DOWN TIMER 2 JSR ADDRESS
CDTMF3 =$22A ;COUNT DOWN TIMER 3 FLAG
SRTIMR =$22B ;SOFTWARE REPEAT TIMER
CDTMF4 =$22C ;COUNT DOWN TIMER 4 FLAG
INTEMP =$22D ;IAN'S TEMP (???)
CDTMF5 =$22E ;COUNT DOWN TIMER 5 FLAG
SDMCTL =$22F ;SAVE DMACTL REGISTER
SDLSTL =$230 ;SAVE DISPLAY LIST (LOW)
SDLSTH =$231 ;SAVE DISPLAY LIST (HIGH)
SSKCTL =$232 ;SKCTL REGISTER RAM
LPENH =$234 ;LIGHT PEN HORIZ VALUE
LPENV =$235 ;LIGHT PEN VERT VALUE
; ($236 - $239 SPARE)
CDEVIC =$23A ;COMMAND FRAME BUFFER - DEVICE
CCOMND =$23B ;COMMAND
CAUX1 =$23C ;COMMAND AUX BYTE 1
CAUX2 =$23D ;COMMAND AUX BYTE 2
TEMP =$23E ;YES
ERRFLG =$23F ;ERROR FLAG - AN